// src/utils/auth.js

export function getToken() {
  return localStorage.getItem('token') || ''
}

export function setToken(token) {
  localStorage.setItem('token', token)
}

export function removeToken() {
  localStorage.removeItem('token')
}

export function isTokenExpired(token) {
  if (!token) return true

  try {
    // 如果是JWT token，解析exp字段
    const parts = token.split('.')
    if (parts.length !== 3) {
      console.warn('Token格式不正确，不是有效的JWT token')
      return true
    }
    
    const payload = JSON.parse(atob(parts[1]))
    const expired = payload.exp < Date.now() / 1000
    if (expired) console.warn('Token已过期')
    return expired
  } catch (e) {
    console.warn('Token解析失败:', e)
    return true // 解析失败视为过期
  }
}

// 新增：验证JWT token格式
export function isValidJWTToken(token) {
  console.log('开始验证JWT token:', token)
  console.log('Token长度:', token.length)
  
  if (!token || typeof token !== 'string') {
    console.log('Token为空或不是字符串')
    return false
  }
  
  const parts = token.split('.')
  console.log('Token分割后的部分数量:', parts.length)
  console.log('Token各部分长度:', parts.map(part => part.length))
  
  if (parts.length !== 3) {
    console.log('Token格式不正确，不是有效的JWT token（需要3个部分）')
    return false
  }
  
  try {
    // 尝试解析payload部分
    console.log('尝试解析payload部分...')
    console.log('Payload部分:', parts[1])
    
    // 检查base64解码
    const decodedPayload = atob(parts[1])
    console.log('解码后的payload:', decodedPayload)
    
    const payload = JSON.parse(decodedPayload)
    console.log('解析出的payload:', payload)
    
    const isValid = payload && typeof payload === 'object'
    console.log('Token验证结果:', isValid)
    return isValid
  } catch (e) {
    console.warn('JWT token解析失败:', e)
    console.log('Token parts[1]:', parts[1])
    console.log('错误详情:', e.message)
    return false
  }
}
